package com.jiyun.model.sign;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * 【-signing_info】实体类
 *
 * @author ???
 * @since 2024-09-27
 */
@Data
@Accessors(chain = true)
@ApiModel(description="对象")
public class SigningInfo implements Serializable {

    @ApiModelProperty("主键，自增编号")
    @TableId
    private Integer id;
    @ApiModelProperty("签约编号")
    private String number;
    @ApiModelProperty("签约状态")
    private Integer status;
    @ApiModelProperty("签约机构")
    private Integer institutionId;
    @TableField(exist = false)
    private String institutionName;
    @ApiModelProperty("签约医生团队")
    private Integer teamId;
    @TableField(exist = false)
    private String teamName;
    @ApiModelProperty("签约医生")
    private Integer doctorId;
    @TableField(exist = false)
    private String doctorName;
    @ApiModelProperty("服务包")
    private Integer serviceId;
    @TableField(exist = false)
    private String serviceName;
    @ApiModelProperty("签约类型")
    private String contractType;
    @ApiModelProperty("签约周期")
    private String signingCycle;
    @ApiModelProperty("费用")
    private BigDecimal cost;
    @ApiModelProperty("申请时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "Asia/Shanghai")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime applicationTime;
    @ApiModelProperty("生效日期")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "Asia/Shanghai")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate effectiveDate;
    @ApiModelProperty("备注")
    private String remarks;
    @ApiModelProperty("关联pending_signing表")
    private Integer pendingSigningId;
    @ApiModelProperty("驳回原因")
    private String reasonForRejection;
    @ApiModelProperty("到期时间")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "Asia/Shanghai")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate expirationDate;
    @ApiModelProperty("居民id")
    private Integer juminId;


}
